﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Net;
using Microsoft.Xna.Framework.Storage;

namespace iMario
{
    public class MenuItem : Item
    {
        //Mục đích class MenuItem
        //  - Biểu diễn và xử lí các vấn đề liên quan đến MenuItem trong màn hình Menu

        //Danh sách các thuộc tính và ý nghĩa
        static public String ClassName = "MenuItem";
        static public int WindowWidth = 800;    //Chiều dài màn hình game
        static public int WindowHeigh = 600;    //Chiều cao màn hình game

        private Texture2D _backGround;          //Texture sử dụng làm background cho đối tượng menu
        public Texture2D backGround
        {
            get { return _backGround; }
        }

        private Texture2D _namegame;            //Texture sử dụng làm tên game cho đối tượng menu
        public Texture2D Namegame
        {
            get { return _namegame; }
            set { _namegame = value; }
        }

        private Texture2D _playgame;            //Texture sử dụng làm menu playgame cho đối tượng menu
        public Texture2D Playgame
        {
            get { return _playgame; }
            set { _playgame = value; }
        }

        private Texture2D _exitgame;            //Texture sử dụng làm menu exit cho đối tượng menu
        public Texture2D Exitgame
        {
            get { return _exitgame; }
            set { _exitgame = value; }
        }

        //Danh sách các phương thức và ý nghĩa
        //Hàm nhân bản thêm 1 đối tượng và trả về chính đối tượng đã được nhân bản thành công đó
        virtual public MenuItem Clone()
        {
            //Tạm thời chưa xử lí
            return null;
        }

        //Hàm cập nhật và xử lí các vấn đề liên quan đến MenuItem
        //  1. Tham số truyền vào:
        //      - KeyboardState _keyboard: Đại diện cho trạng thái của Keyboard
        //      - MouseState _mouse: Đại diện cho trạng thái của Mouse
        //      - GameTime _gameTime: biến đếm thời gian của game
        //  2. Giá trị trả về: Không có
        public override void Update(KeyboardState _keyboard, MouseState _mouse, GameTime _gameTime)
        {
            //Tạm thời chưa xử lí
        }
    }
}
